#ifndef __G_WIN32_GLES_H__
#define __G_WIN32_GLES_H__

#include <Windows.h>
#include "IPlatform.h"
#include "ESContext.h"

/// esCreateWindow flag - RGB color buffer
#define ES_WINDOW_RGB           0
/// esCreateWindow flag - ALPHA color buffer
#define ES_WINDOW_ALPHA         1 
/// esCreateWindow flag - depth buffer
#define ES_WINDOW_DEPTH         2 
/// esCreateWindow flag - stencil buffer
#define ES_WINDOW_STENCIL       4
/// esCreateWindow flat - multi-sample buffer
#define ES_WINDOW_MULTISAMPLE   8

class WindowsOpenGLES : public IPlatform
{
private:
	static WindowsOpenGLES* m_pInstance;
private:
	ESContext* m_pESContext;
protected:
	//Create windows for run game 
	virtual FWboolean CreateWindows();
	//Create client windows
	virtual FWboolean CreateClientWindows();
	//Main windows process
	static LRESULT WinProc(HWND, UINT, WPARAM, LPARAM);
public:
	WindowsOpenGLES();
	WindowsOpenGLES(FWuint iWidth, FWuint iHeight, char * szTitle, FWuint iFlags);
	~WindowsOpenGLES();
	//Initialize used data
	virtual FWint Init();
	//Run device
	virtual void Run();
	//Relese all used data
	virtual void Destroy();
	//End device loop
	virtual void End();
};

#endif